@@ -3,7 +3,7 @@  | 
            ||
| 3 | 3 | 
                from curtail_uuid import CurtailUUID  | 
            
| 4 | 4 | 
                from django.contrib.auth.hashers import check_password, make_password  | 
            
| 5 | 5 | 
                from django.contrib.auth.models import Group, User  | 
            
| 6 | 
                -from django.http import JsonResponse  | 
            |
| 6 | 
                +from logit import logit  | 
            |
| 7 | 7 | 
                from rest_framework import viewsets  | 
            
| 8 | 8 | 
                from TimeConvert import TimeConvert as tc  | 
            
| 9 | 9 | 
                 | 
            
                @@ -18,6 +18,7 @@ from utils.version_utils import is_version_match  | 
            ||
| 18 | 18 | 
                 | 
            
| 19 | 19 | 
                 | 
            
| 20 | 20 | 
                # curl -X POST -F username=xxxxxxx -F password=xxxxxxx http://api.pai.ai/login  | 
            
| 21 | 
                +@logit  | 
            |
| 21 | 22 | 
                def lensman_login_api(request):  | 
            
| 22 | 23 | 
                     username = request.POST.get('username', '')
               | 
            
| 23 | 24 | 
                     password = request.POST.get('password', '')
               | 
            
                @@ -30,26 +31,19 @@ def lensman_login_api(request):  | 
            ||
| 30 | 31 | 
                if not check_password(password, lensman.encryption):  | 
            
| 31 | 32 | 
                return response(LensmanStatusCode.LENSMAN_PASSWORD_ERROR)  | 
            
| 32 | 33 | 
                 | 
            
| 33 | 
                -    return JsonResponse({
               | 
            |
| 34 | 
                - 'status': 200,  | 
            |
| 35 | 
                - 'message': u'登录成功',  | 
            |
| 36 | 
                -        'data': {
               | 
            |
| 37 | 
                - 'user_id': lensman.lensman_id  | 
            |
| 38 | 
                - },  | 
            |
| 34 | 
                +    return response(200, 'Login Success', u'登录成功', {
               | 
            |
| 35 | 
                + 'user_id': lensman.lensman_id  | 
            |
| 39 | 36 | 
                })  | 
            
| 40 | 37 | 
                 | 
            
| 41 | 38 | 
                 | 
            
| 39 | 
                +@logit  | 
            |
| 42 | 40 | 
                def user_is_registered_api(request):  | 
            
| 43 | 
                -    username = request.POST.get('username', '')
               | 
            |
| 44 | 
                -    return JsonResponse({
               | 
            |
| 45 | 
                - 'status': 200,  | 
            |
| 46 | 
                - 'message': '',  | 
            |
| 47 | 
                -        'data': {
               | 
            |
| 48 | 
                - 'registered': UserInfo.objects.filter(username=username).exists(),  | 
            |
| 49 | 
                - }  | 
            |
| 41 | 
                +    return response(200, '', '', {
               | 
            |
| 42 | 
                +        'registered': UserInfo.objects.filter(username=request.POST.get('username', '')).exists(),
               | 
            |
| 50 | 43 | 
                })  | 
            
| 51 | 44 | 
                 | 
            
| 52 | 45 | 
                 | 
            
| 46 | 
                +@logit  | 
            |
| 53 | 47 | 
                def user_signup_api(request):  | 
            
| 54 | 48 | 
                     user_id = request.POST.get('user_id', '')
               | 
            
| 55 | 49 | 
                     username = request.POST.get('username', '')
               | 
            
                @@ -85,13 +79,10 @@ def user_signup_api(request):  | 
            ||
| 85 | 79 | 
                signup_at=signup_at,  | 
            
| 86 | 80 | 
                )  | 
            
| 87 | 81 | 
                 | 
            
| 88 | 
                -    return JsonResponse({
               | 
            |
| 89 | 
                - 'status': 200,  | 
            |
| 90 | 
                - 'message': u'注册成功',  | 
            |
| 91 | 
                - 'data': user.data,  | 
            |
| 92 | 
                - })  | 
            |
| 82 | 
                + return response(200, 'Signup Success', u'注册成功', user.data)  | 
            |
| 93 | 83 | 
                 | 
            
| 94 | 84 | 
                 | 
            
| 85 | 
                +@logit  | 
            |
| 95 | 86 | 
                def user_login_api(request):  | 
            
| 96 | 87 | 
                     username = request.POST.get('username', '')
               | 
            
| 97 | 88 | 
                     password = request.POST.get('password', '')
               | 
            
                @@ -121,13 +112,10 @@ def user_login_api(request):  | 
            ||
| 121 | 112 | 
                user.login_at = login_at  | 
            
| 122 | 113 | 
                user.save()  | 
            
| 123 | 114 | 
                 | 
            
| 124 | 
                -    return JsonResponse({
               | 
            |
| 125 | 
                - 'status': 200,  | 
            |
| 126 | 
                - 'message': u'登录成功',  | 
            |
| 127 | 
                - 'data': user.data,  | 
            |
| 128 | 
                - })  | 
            |
| 115 | 
                + return response(200, 'Login Success', u'登录成功', user.data)  | 
            |
| 129 | 116 | 
                 | 
            
| 130 | 117 | 
                 | 
            
| 118 | 
                +@logit  | 
            |
| 131 | 119 | 
                def user_wx_authorize_api(request):  | 
            
| 132 | 120 | 
                     user_id = request.POST.get('user_id', '')
               | 
            
| 133 | 121 | 
                 | 
            
                @@ -157,11 +145,7 @@ def user_wx_authorize_api(request):  | 
            ||
| 157 | 145 | 
                user.city = city  | 
            
| 158 | 146 | 
                user.save()  | 
            
| 159 | 147 | 
                 | 
            
| 160 | 
                -        return JsonResponse({
               | 
            |
| 161 | 
                - 'status': 200,  | 
            |
| 162 | 
                - 'message': u'登录成功',  | 
            |
| 163 | 
                - 'data': user.data,  | 
            |
| 164 | 
                - })  | 
            |
| 148 | 
                + return response(200, 'Login Success', u'登录成功', user.data)  | 
            |
| 165 | 149 | 
                 | 
            
| 166 | 150 | 
                # unionid 不存在  | 
            
| 167 | 151 | 
                # 判断 user_id 是否存在并且为分配用户,如果存在并且为分配用户,则直接在该帐户上更新,否则则直接创建帐户  | 
            
                @@ -203,13 +187,10 @@ def user_wx_authorize_api(request):  | 
            ||
| 203 | 187 | 
                signup_at=signup_at,  | 
            
| 204 | 188 | 
                )  | 
            
| 205 | 189 | 
                 | 
            
| 206 | 
                -    return JsonResponse({
               | 
            |
| 207 | 
                - 'status': 200,  | 
            |
| 208 | 
                - 'message': u'登录成功',  | 
            |
| 209 | 
                - 'data': user.data,  | 
            |
| 210 | 
                - })  | 
            |
| 190 | 
                + return response(200, 'Login Success', u'登录成功', user.data)  | 
            |
| 211 | 191 | 
                 | 
            
| 212 | 192 | 
                 | 
            
| 193 | 
                +@logit  | 
            |
| 213 | 194 | 
                def guest_status_api(request):  | 
            
| 214 | 195 | 
                """ 游客状态 """  | 
            
| 215 | 196 | 
                gen = get_guest_entrance_control()  | 
            
                @@ -231,13 +212,10 @@ def guest_status_api(request):  | 
            ||
| 231 | 212 | 
                if not is_version_match(request, gen):  | 
            
| 232 | 213 | 
                return response(UserStatusCode.GUEST_NOT_ALLOWED)  | 
            
| 233 | 214 | 
                 | 
            
| 234 | 
                -    return JsonResponse({
               | 
            |
| 235 | 
                - 'status': 200,  | 
            |
| 236 | 
                - 'message': u'游客登录开启',  | 
            |
| 237 | 
                -        'data': {},
               | 
            |
| 238 | 
                - })  | 
            |
| 215 | 
                + return response(200, 'Guest Login Allowed', u'游客登录开启')  | 
            |
| 239 | 216 | 
                 | 
            
| 240 | 217 | 
                 | 
            
| 218 | 
                +@logit  | 
            |
| 241 | 219 | 
                def guest_login_api(request):  | 
            
| 242 | 220 | 
                """ 游客登录 """  | 
            
| 243 | 221 | 
                gen = get_guest_entrance_control()  | 
            
                @@ -280,11 +258,7 @@ def guest_login_api(request):  | 
            ||
| 280 | 258 | 
                         user.nickname = u'游客{}'.format(user.pk)
               | 
            
| 281 | 259 | 
                user.save()  | 
            
| 282 | 260 | 
                 | 
            
| 283 | 
                -    return JsonResponse({
               | 
            |
| 284 | 
                - 'status': 200,  | 
            |
| 285 | 
                - 'message': u'游客登录成功',  | 
            |
| 286 | 
                - 'data': user.data,  | 
            |
| 287 | 
                - })  | 
            |
| 261 | 
                + return response(200, 'Guest Login Success', u'游客登录成功', user.data)  | 
            |
| 288 | 262 | 
                 | 
            
| 289 | 263 | 
                 | 
            
| 290 | 264 | 
                class UserViewSet(viewsets.ModelViewSet):  | 
            
                @@ -9,7 +9,6 @@ from curtail_uuid import CurtailUUID  | 
            ||
| 9 | 9 | 
                from django.conf import settings  | 
            
| 10 | 10 | 
                from django.contrib.auth.hashers import check_password  | 
            
| 11 | 11 | 
                from django.core.files.storage import default_storage  | 
            
| 12 | 
                -from django.http import JsonResponse  | 
            |
| 13 | 12 | 
                from logit import logit  | 
            
| 14 | 13 | 
                from TimeConvert import TimeConvert as tc  | 
            
| 15 | 14 | 
                 | 
            
                @@ -27,6 +26,7 @@ from utils.watermark_utils import watermark_wrap  | 
            ||
| 27 | 26 | 
                r = settings.REDIS_CACHE  | 
            
| 28 | 27 | 
                 | 
            
| 29 | 28 | 
                 | 
            
| 29 | 
                +@logit  | 
            |
| 30 | 30 | 
                def lensman_submit_api(request):  | 
            
| 31 | 31 | 
                """  | 
            
| 32 | 32 | 
                摄影师信息提交  | 
            
                @@ -59,6 +59,7 @@ def lensman_submit_api(request):  | 
            ||
| 59 | 59 | 
                     return response(200, 'Submit Success', u'提交成功', {})
               | 
            
| 60 | 60 | 
                 | 
            
| 61 | 61 | 
                 | 
            
| 62 | 
                +@logit  | 
            |
| 62 | 63 | 
                def lensman_login_api(request):  | 
            
| 63 | 64 | 
                """  | 
            
| 64 | 65 | 
                摄影师登录  | 
            
                @@ -81,16 +82,11 @@ def lensman_login_api(request):  | 
            ||
| 81 | 82 | 
                except UserInfo.DoesNotExist:  | 
            
| 82 | 83 | 
                return response(LensmanStatusCode.LENSMAN_NOT_FOUND)  | 
            
| 83 | 84 | 
                 | 
            
| 84 | 
                -    return JsonResponse({
               | 
            |
| 85 | 
                - 'status': 200,  | 
            |
| 86 | 
                - 'message': u'登录成功',  | 
            |
| 87 | 
                - 'data': user.data,  | 
            |
| 88 | 
                - })  | 
            |
| 85 | 
                + return response(200, 'Login Success', u'登录成功', user.data)  | 
            |
| 89 | 86 | 
                 | 
            
| 90 | 87 | 
                 | 
            
| 91 | 88 | 
                @logit  | 
            
| 92 | 89 | 
                def lensman_wx_authorize_api(request):  | 
            
| 93 | 
                -    openid = wx_uid = request.POST.get('wx_uid', '')
               | 
            |
| 94 | 90 | 
                     unionid = request.POST.get('unionid', '')
               | 
            
| 95 | 91 | 
                 | 
            
| 96 | 92 | 
                # 判断 unionid 是否已经存在,如果已经存在,则直接返回改帐户信息  | 
            
                @@ -239,12 +235,8 @@ def lensman_photo_upload_api(request):  | 
            ||
| 239 | 235 | 
                )  | 
            
| 240 | 236 | 
                latest_photo = group_photos.first()  | 
            
| 241 | 237 | 
                 | 
            
| 242 | 
                -    return JsonResponse({
               | 
            |
| 243 | 
                - 'status': 200,  | 
            |
| 244 | 
                - 'message': u'摄影师照片上传成功',  | 
            |
| 245 | 
                -        'data': {
               | 
            |
| 246 | 
                - 'group_id': group_id,  | 
            |
| 247 | 
                - 'current_id': latest_photo and latest_photo.pk or current_id,  | 
            |
| 248 | 
                - 'photos': [photo.photo_info(user_id) for photo in group_photos],  | 
            |
| 249 | 
                - }  | 
            |
| 238 | 
                +    return response(200, 'Lensman Upload Photo Success', u'摄影师照片上传成功', {
               | 
            |
| 239 | 
                + 'group_id': group_id,  | 
            |
| 240 | 
                + 'current_id': latest_photo and latest_photo.pk or current_id,  | 
            |
| 241 | 
                + 'photos': [photo.photo_info(user_id) for photo in group_photos],  | 
            |
| 250 | 242 | 
                })  | 
            
                @@ -11,8 +11,8 @@ from curtail_uuid import CurtailUUID  | 
            ||
| 11 | 11 | 
                from django.conf import settings  | 
            
| 12 | 12 | 
                from django.core.files.storage import default_storage  | 
            
| 13 | 13 | 
                from django.db import connection, transaction  | 
            
| 14 | 
                -from django.http import JsonResponse  | 
            |
| 15 | 14 | 
                from django.shortcuts import render  | 
            
| 15 | 
                +from logit import logit  | 
            |
| 16 | 16 | 
                from rest_framework import viewsets  | 
            
| 17 | 17 | 
                from TimeConvert import TimeConvert as tc  | 
            
| 18 | 18 | 
                 | 
            
                @@ -37,10 +37,11 @@ from utils.thumbnail_utils import make_thumbnail  | 
            ||
| 37 | 37 | 
                from utils.url_utils import img_url, share_url  | 
            
| 38 | 38 | 
                 | 
            
| 39 | 39 | 
                 | 
            
| 40 | 
                -db = records.Database(settings.DATABASE_URL['default'])  | 
            |
| 40 | 
                +# db = records.Database(settings.DATABASE_URL['default'])  | 
            |
| 41 | 41 | 
                r = settings.REDIS_CACHE  | 
            
| 42 | 42 | 
                 | 
            
| 43 | 43 | 
                 | 
            
| 44 | 
                +@logit  | 
            |
| 44 | 45 | 
                @transaction.atomic  | 
            
| 45 | 46 | 
                def group_create_api(request):  | 
            
| 46 | 47 | 
                """  | 
            
                @@ -90,17 +91,14 @@ def group_create_api(request):  | 
            ||
| 90 | 91 | 
                # Redis 群组通过集合缓存  | 
            
| 91 | 92 | 
                r.sadd(GROUP_USERS_PASSED_SET % group_id, user_id)  | 
            
| 92 | 93 | 
                 | 
            
| 93 | 
                -    return JsonResponse({
               | 
            |
| 94 | 
                - 'status': 200,  | 
            |
| 95 | 
                - 'message': u'群组创建成功',  | 
            |
| 96 | 
                -        'data': {
               | 
            |
| 97 | 
                - 'group_id': group_id,  | 
            |
| 98 | 
                - 'group': group_info,  | 
            |
| 99 | 
                - 'users': group_users,  | 
            |
| 100 | 
                - },  | 
            |
| 94 | 
                +    return response(200, 'Create Group Success', u'群组创建成功', {
               | 
            |
| 95 | 
                + 'group_id': group_id,  | 
            |
| 96 | 
                + 'group': group_info,  | 
            |
| 97 | 
                + 'users': group_users,  | 
            |
| 101 | 98 | 
                })  | 
            
| 102 | 99 | 
                 | 
            
| 103 | 100 | 
                 | 
            
| 101 | 
                +@logit  | 
            |
| 104 | 102 | 
                def group_detail_api(request):  | 
            
| 105 | 103 | 
                """  | 
            
| 106 | 104 | 
                群组详情  | 
            
                @@ -110,17 +108,14 @@ def group_detail_api(request):  | 
            ||
| 110 | 108 | 
                     group_id = request.POST.get('group_id', '')
               | 
            
| 111 | 109 | 
                     user_id = request.POST.get('user_id', '')
               | 
            
| 112 | 110 | 
                 | 
            
| 113 | 
                -    return JsonResponse({
               | 
            |
| 114 | 
                - 'status': 200,  | 
            |
| 115 | 
                - 'message': u'获取群组详情成功',  | 
            |
| 116 | 
                -        'data': {
               | 
            |
| 117 | 
                - 'group_id': group_id,  | 
            |
| 118 | 
                - 'group': get_group_info(group_id),  | 
            |
| 119 | 
                - 'users': get_group_users_info(group_id, user_id),  | 
            |
| 120 | 
                - },  | 
            |
| 111 | 
                +    return response(200, 'Get Group Detail Info Success', u'获取群组详情成功', {
               | 
            |
| 112 | 
                + 'group_id': group_id,  | 
            |
| 113 | 
                + 'group': get_group_info(group_id),  | 
            |
| 114 | 
                + 'users': get_group_users_info(group_id, user_id),  | 
            |
| 121 | 115 | 
                })  | 
            
| 122 | 116 | 
                 | 
            
| 123 | 117 | 
                 | 
            
| 118 | 
                +@logit  | 
            |
| 124 | 119 | 
                def group_update_api(request):  | 
            
| 125 | 120 | 
                """  | 
            
| 126 | 121 | 
                群组更新  | 
            
                @@ -163,17 +158,14 @@ def group_update_api(request):  | 
            ||
| 163 | 158 | 
                # Redis 群组数据缓存更新  | 
            
| 164 | 159 | 
                group_info = set_group_info(group)  | 
            
| 165 | 160 | 
                 | 
            
| 166 | 
                -    return JsonResponse({
               | 
            |
| 167 | 
                - 'status': 200,  | 
            |
| 168 | 
                - 'message': u'群组更新成功',  | 
            |
| 169 | 
                -        'data': {
               | 
            |
| 170 | 
                - 'group_id': group_id,  | 
            |
| 171 | 
                - 'group': group_info,  | 
            |
| 172 | 
                - 'users': get_group_users_info(group_id, admin_id),  | 
            |
| 173 | 
                - },  | 
            |
| 161 | 
                +    return response(200, 'Update Group Success', u'群组更新成功', {
               | 
            |
| 162 | 
                + 'group_id': group_id,  | 
            |
| 163 | 
                + 'group': group_info,  | 
            |
| 164 | 
                + 'users': get_group_users_info(group_id, admin_id),  | 
            |
| 174 | 165 | 
                })  | 
            
| 175 | 166 | 
                 | 
            
| 176 | 167 | 
                 | 
            
| 168 | 
                +@logit  | 
            |
| 177 | 169 | 
                def group_list_api(request):  | 
            
| 178 | 170 | 
                """  | 
            
| 179 | 171 | 
                群组列表  | 
            
                @@ -192,16 +184,13 @@ def group_list_api(request):  | 
            ||
| 192 | 184 | 
                group_info = get_group_info(group_user.group_id)  | 
            
| 193 | 185 | 
                groups.append(group_info) if group_info else None  | 
            
| 194 | 186 | 
                 | 
            
| 195 | 
                -    return JsonResponse({
               | 
            |
| 196 | 
                - 'status': 200,  | 
            |
| 197 | 
                - 'message': u'获取群组列表成功',  | 
            |
| 198 | 
                -        'data': {
               | 
            |
| 199 | 
                - 'groups': groups,  | 
            |
| 200 | 
                - 'left': left,  | 
            |
| 201 | 
                - },  | 
            |
| 187 | 
                +    return response(200, 'Get Group List Success', u'获取群组列表成功', {
               | 
            |
| 188 | 
                + 'groups': groups,  | 
            |
| 189 | 
                + 'left': left,  | 
            |
| 202 | 190 | 
                })  | 
            
| 203 | 191 | 
                 | 
            
| 204 | 192 | 
                 | 
            
| 193 | 
                +@logit  | 
            |
| 205 | 194 | 
                def group_join_api(request):  | 
            
| 206 | 195 | 
                """  | 
            
| 207 | 196 | 
                申请加群  | 
            
                @@ -251,20 +240,17 @@ def group_join_api(request):  | 
            ||
| 251 | 240 | 
                r.srem(GROUP_USERS_QUIT_SET % group_id, user_id)  | 
            
| 252 | 241 | 
                r.sadd(GROUP_USERS_PASSED_SET % group_id, user_id)  | 
            
| 253 | 242 | 
                 | 
            
| 254 | 
                -    return JsonResponse({
               | 
            |
| 255 | 
                - 'status': 200,  | 
            |
| 256 | 
                - 'message': u'申请成功',  | 
            |
| 257 | 
                -        'data': {
               | 
            |
| 258 | 
                - 'current_id': group_user.current_id,  | 
            |
| 259 | 
                - 'photos': [],  | 
            |
| 260 | 
                - 'group_id': group_id,  | 
            |
| 261 | 
                - 'group': get_group_info(group_id),  | 
            |
| 262 | 
                - 'user_id': user_id,  | 
            |
| 263 | 
                - 'users': get_group_users_info(group_id, user_id),  | 
            |
| 264 | 
                - },  | 
            |
| 243 | 
                +    return response(200, 'Apply Success', u'申请成功', {
               | 
            |
| 244 | 
                + 'current_id': group_user.current_id,  | 
            |
| 245 | 
                + 'photos': [],  | 
            |
| 246 | 
                + 'group_id': group_id,  | 
            |
| 247 | 
                + 'group': get_group_info(group_id),  | 
            |
| 248 | 
                + 'user_id': user_id,  | 
            |
| 249 | 
                + 'users': get_group_users_info(group_id, user_id),  | 
            |
| 265 | 250 | 
                })  | 
            
| 266 | 251 | 
                 | 
            
| 267 | 252 | 
                 | 
            
| 253 | 
                +@logit  | 
            |
| 268 | 254 | 
                def group_lock_api(request):  | 
            
| 269 | 255 | 
                """  | 
            
| 270 | 256 | 
                群组锁定  | 
            
                @@ -291,12 +277,10 @@ def group_lock_api(request):  | 
            ||
| 291 | 277 | 
                # Redis 群组数据缓存更新  | 
            
| 292 | 278 | 
                set_group_info(group)  | 
            
| 293 | 279 | 
                 | 
            
| 294 | 
                -    return JsonResponse({
               | 
            |
| 295 | 
                - 'status': 200,  | 
            |
| 296 | 
                - 'message': u'锁定成功',  | 
            |
| 297 | 
                - })  | 
            |
| 280 | 
                + return response(200, 'Lock Success', u'锁定成功')  | 
            |
| 298 | 281 | 
                 | 
            
| 299 | 282 | 
                 | 
            
| 283 | 
                +@logit  | 
            |
| 300 | 284 | 
                def group_unlock_api(request):  | 
            
| 301 | 285 | 
                """  | 
            
| 302 | 286 | 
                群组解锁  | 
            
                @@ -323,12 +307,10 @@ def group_unlock_api(request):  | 
            ||
| 323 | 307 | 
                # Redis 群组数据缓存更新  | 
            
| 324 | 308 | 
                set_group_info(group)  | 
            
| 325 | 309 | 
                 | 
            
| 326 | 
                -    return JsonResponse({
               | 
            |
| 327 | 
                - 'status': 200,  | 
            |
| 328 | 
                - 'message': u'解锁成功',  | 
            |
| 329 | 
                - })  | 
            |
| 310 | 
                + return response(200, u'Unlock Success', u'解锁成功')  | 
            |
| 330 | 311 | 
                 | 
            
| 331 | 312 | 
                 | 
            
| 313 | 
                +@logit  | 
            |
| 332 | 314 | 
                def group_remove_api(request):  | 
            
| 333 | 315 | 
                """  | 
            
| 334 | 316 | 
                成员移除  | 
            
                @@ -367,16 +349,13 @@ def group_remove_api(request):  | 
            ||
| 367 | 349 | 
                r.srem(GROUP_USERS_PASSED_SET % group_id, user_id)  | 
            
| 368 | 350 | 
                r.sadd(GROUP_USERS_DELETED_SET % group_id, user_id)  | 
            
| 369 | 351 | 
                 | 
            
| 370 | 
                -    return JsonResponse({
               | 
            |
| 371 | 
                - 'status': 200,  | 
            |
| 372 | 
                - 'message': u'用户移除成功',  | 
            |
| 373 | 
                -        'data': {
               | 
            |
| 374 | 
                - 'group_id': group_id,  | 
            |
| 375 | 
                - 'users': group_users,  | 
            |
| 376 | 
                - },  | 
            |
| 352 | 
                +    return response(200, 'Remove Success', u'用户移除成功', {
               | 
            |
| 353 | 
                + 'group_id': group_id,  | 
            |
| 354 | 
                + 'users': group_users,  | 
            |
| 377 | 355 | 
                })  | 
            
| 378 | 356 | 
                 | 
            
| 379 | 357 | 
                 | 
            
| 358 | 
                +@logit  | 
            |
| 380 | 359 | 
                def group_quit_api(request):  | 
            
| 381 | 360 | 
                """  | 
            
| 382 | 361 | 
                成员退出  | 
            
                @@ -414,16 +393,13 @@ def group_quit_api(request):  | 
            ||
| 414 | 393 | 
                r.srem(GROUP_USERS_PASSED_SET % group_id, user_id)  | 
            
| 415 | 394 | 
                r.sadd(GROUP_USERS_QUIT_SET % group_id, user_id)  | 
            
| 416 | 395 | 
                 | 
            
| 417 | 
                -    return JsonResponse({
               | 
            |
| 418 | 
                - 'status': 200,  | 
            |
| 419 | 
                - 'message': u'用户退出成功',  | 
            |
| 420 | 
                -        'data': {
               | 
            |
| 421 | 
                - 'group_id': group_id,  | 
            |
| 422 | 
                - 'users': group_users,  | 
            |
| 423 | 
                - },  | 
            |
| 396 | 
                +    return response(200, 'Quit Success', u'用户退出成功', {
               | 
            |
| 397 | 
                + 'group_id': group_id,  | 
            |
| 398 | 
                + 'users': group_users,  | 
            |
| 424 | 399 | 
                })  | 
            
| 425 | 400 | 
                 | 
            
| 426 | 401 | 
                 | 
            
| 402 | 
                +@logit  | 
            |
| 427 | 403 | 
                def group_pass_api(request):  | 
            
| 428 | 404 | 
                """  | 
            
| 429 | 405 | 
                申请通过  | 
            
                @@ -462,16 +438,13 @@ def group_pass_api(request):  | 
            ||
| 462 | 438 | 
                r.srem(GROUP_USERS_APPLYING_SET % group_id, user_id)  | 
            
| 463 | 439 | 
                r.sadd(GROUP_USERS_PASSED_SET % group_id, user_id)  | 
            
| 464 | 440 | 
                 | 
            
| 465 | 
                -    return JsonResponse({
               | 
            |
| 466 | 
                - 'status': 200,  | 
            |
| 467 | 
                - 'message': u'申请通过成功',  | 
            |
| 468 | 
                -        'data': {
               | 
            |
| 469 | 
                - 'group_id': group_id,  | 
            |
| 470 | 
                - 'users': group_users,  | 
            |
| 471 | 
                - },  | 
            |
| 441 | 
                +    return response(200, 'Pass Success', u'申请通过成功', {
               | 
            |
| 442 | 
                + 'group_id': group_id,  | 
            |
| 443 | 
                + 'users': group_users,  | 
            |
| 472 | 444 | 
                })  | 
            
| 473 | 445 | 
                 | 
            
| 474 | 446 | 
                 | 
            
| 447 | 
                +@logit  | 
            |
| 475 | 448 | 
                def group_refuse_api(request):  | 
            
| 476 | 449 | 
                """  | 
            
| 477 | 450 | 
                申请拒绝  | 
            
                @@ -510,16 +483,13 @@ def group_refuse_api(request):  | 
            ||
| 510 | 483 | 
                r.srem(GROUP_USERS_APPLYING_SET % group_id, user_id)  | 
            
| 511 | 484 | 
                r.sadd(GROUP_USERS_REFUSED_SET % group_id, user_id)  | 
            
| 512 | 485 | 
                 | 
            
| 513 | 
                -    return JsonResponse({
               | 
            |
| 514 | 
                - 'status': 200,  | 
            |
| 515 | 
                - 'message': u'申请拒绝成功',  | 
            |
| 516 | 
                -        'data': {
               | 
            |
| 517 | 
                - 'group_id': group_id,  | 
            |
| 518 | 
                - 'users': group_users,  | 
            |
| 519 | 
                - },  | 
            |
| 486 | 
                +    return response(200, 'Refuse Success', u'申请拒绝成功', {
               | 
            |
| 487 | 
                + 'group_id': group_id,  | 
            |
| 488 | 
                + 'users': group_users,  | 
            |
| 520 | 489 | 
                })  | 
            
| 521 | 490 | 
                 | 
            
| 522 | 491 | 
                 | 
            
| 492 | 
                +@logit  | 
            |
| 523 | 493 | 
                def group_data_api(request):  | 
            
| 524 | 494 | 
                """  | 
            
| 525 | 495 | 
                群组数据, 评论数, 点赞数  | 
            
                @@ -528,15 +498,12 @@ def group_data_api(request):  | 
            ||
| 528 | 498 | 
                """  | 
            
| 529 | 499 | 
                     group_id = request.POST.get('group_id', '')
               | 
            
| 530 | 500 | 
                 | 
            
| 531 | 
                -    return JsonResponse({
               | 
            |
| 532 | 
                - 'status': 200,  | 
            |
| 533 | 
                - 'message': u'获取群组数据成功',  | 
            |
| 534 | 
                -        'data': {
               | 
            |
| 535 | 
                - 'photo_datas': get_group_photo_data(group_id),  | 
            |
| 536 | 
                - }  | 
            |
| 501 | 
                +    return response(200, 'Get Group Data Success', u'获取群组数据成功', {
               | 
            |
| 502 | 
                + 'photo_datas': get_group_photo_data(group_id),  | 
            |
| 537 | 503 | 
                })  | 
            
| 538 | 504 | 
                 | 
            
| 539 | 505 | 
                 | 
            
| 506 | 
                +@logit  | 
            |
| 540 | 507 | 
                def flyimg_upload_api(request):  | 
            
| 541 | 508 | 
                """  | 
            
| 542 | 509 | 
                飞图上传/飞图列表  | 
            
                @@ -620,16 +587,13 @@ def flyimg_upload_api(request):  | 
            ||
| 620 | 587 | 
                )  | 
            
| 621 | 588 | 
                latest_photo = group_photos.first()  | 
            
| 622 | 589 | 
                 | 
            
| 623 | 
                -    return JsonResponse({
               | 
            |
| 624 | 
                - 'status': 200,  | 
            |
| 625 | 
                - 'message': u'飞图上传成功',  | 
            |
| 626 | 
                -        'data': {
               | 
            |
| 627 | 
                - 'current_id': latest_photo and latest_photo.pk or current_id,  | 
            |
| 628 | 
                - 'photos': [photo.photo_info(user_id) for photo in group_photos],  | 
            |
| 629 | 
                - }  | 
            |
| 590 | 
                +    return response(200, 'Flyimg Upload Success', u'飞图上传成功', {
               | 
            |
| 591 | 
                + 'current_id': latest_photo and latest_photo.pk or current_id,  | 
            |
| 592 | 
                + 'photos': [photo.photo_info(user_id) for photo in group_photos],  | 
            |
| 630 | 593 | 
                })  | 
            
| 631 | 594 | 
                 | 
            
| 632 | 595 | 
                 | 
            
| 596 | 
                +@logit  | 
            |
| 633 | 597 | 
                def comment_submit_api(request):  | 
            
| 634 | 598 | 
                """  | 
            
| 635 | 599 | 
                飞图评论提交/飞图评论列表  | 
            
                @@ -711,15 +675,12 @@ def comment_submit_api(request):  | 
            ||
| 711 | 675 | 
                msg_content=comment,  | 
            
| 712 | 676 | 
                )  | 
            
| 713 | 677 | 
                 | 
            
| 714 | 
                -    return JsonResponse({
               | 
            |
| 715 | 
                - 'status': 200,  | 
            |
| 716 | 
                - 'message': u'评论成功',  | 
            |
| 717 | 
                -        'data': {
               | 
            |
| 718 | 
                - 'comments': get_group_photo_comment_list(photo_id),  | 
            |
| 719 | 
                - }  | 
            |
| 678 | 
                +    return response(200, 'Comment Success', u'评论成功', {
               | 
            |
| 679 | 
                + 'comments': get_group_photo_comment_list(photo_id),  | 
            |
| 720 | 680 | 
                })  | 
            
| 721 | 681 | 
                 | 
            
| 722 | 682 | 
                 | 
            
| 683 | 
                +@logit  | 
            |
| 723 | 684 | 
                def thumbup_submit_api(request):  | 
            
| 724 | 685 | 
                """  | 
            
| 725 | 686 | 
                飞图点赞提交  | 
            
                @@ -805,16 +766,13 @@ def thumbup_submit_api(request):  | 
            ||
| 805 | 766 | 
                msg_content=u'点赞',  | 
            
| 806 | 767 | 
                )  | 
            
| 807 | 768 | 
                 | 
            
| 808 | 
                -    return JsonResponse({
               | 
            |
| 809 | 
                - 'status': 200,  | 
            |
| 810 | 
                - 'message': u'点赞提交成功',  | 
            |
| 811 | 
                -        'data': {
               | 
            |
| 812 | 
                - 'thumbup': True,  | 
            |
| 813 | 
                - 'thumbups': get_group_photo_thumbup_list(photo_id),  | 
            |
| 814 | 
                - }  | 
            |
| 769 | 
                +    return response(200, 'Thumbup Success', u'点赞提交成功', {
               | 
            |
| 770 | 
                + 'thumbup': True,  | 
            |
| 771 | 
                + 'thumbups': get_group_photo_thumbup_list(photo_id),  | 
            |
| 815 | 772 | 
                })  | 
            
| 816 | 773 | 
                 | 
            
| 817 | 774 | 
                 | 
            
| 775 | 
                +@logit  | 
            |
| 818 | 776 | 
                def thumbup_list_api(request):  | 
            
| 819 | 777 | 
                """  | 
            
| 820 | 778 | 
                飞图点赞列表  | 
            
                @@ -825,16 +783,13 @@ def thumbup_list_api(request):  | 
            ||
| 825 | 783 | 
                     user_id = request.POST.get('user_id', '')
               | 
            
| 826 | 784 | 
                     photo_id = request.POST.get('photo_id', '')
               | 
            
| 827 | 785 | 
                 | 
            
| 828 | 
                -    return JsonResponse({
               | 
            |
| 829 | 
                - 'status': 200,  | 
            |
| 830 | 
                - 'message': u'获取点赞列表成功',  | 
            |
| 831 | 
                -        'data': {
               | 
            |
| 832 | 
                - 'thumbup': get_group_photo_thumbup_flag(photo_id, user_id), # user_id 是否点赞 photo_id  | 
            |
| 833 | 
                - 'thumbups': get_group_photo_thumbup_list(photo_id), # 群组照片点赞列表  | 
            |
| 834 | 
                - }  | 
            |
| 786 | 
                +    return response(200, 'Get Thumbup List Success', u'获取点赞列表成功', {
               | 
            |
| 787 | 
                + 'thumbup': get_group_photo_thumbup_flag(photo_id, user_id), # user_id 是否点赞 photo_id  | 
            |
| 788 | 
                + 'thumbups': get_group_photo_thumbup_list(photo_id), # 群组照片点赞列表  | 
            |
| 835 | 789 | 
                })  | 
            
| 836 | 790 | 
                 | 
            
| 837 | 791 | 
                 | 
            
| 792 | 
                +@logit  | 
            |
| 838 | 793 | 
                def thumbup_cancel_api(request):  | 
            
| 839 | 794 | 
                """  | 
            
| 840 | 795 | 
                飞图点赞取消  | 
            
                @@ -902,16 +857,13 @@ def thumbup_cancel_api(request):  | 
            ||
| 902 | 857 | 
                thumbup=True,  | 
            
| 903 | 858 | 
                )  | 
            
| 904 | 859 | 
                 | 
            
| 905 | 
                -    return JsonResponse({
               | 
            |
| 906 | 
                - 'status': 200,  | 
            |
| 907 | 
                - 'message': u'点赞取消成功',  | 
            |
| 908 | 
                -        'data': {
               | 
            |
| 909 | 
                - 'thumbup': False,  | 
            |
| 910 | 
                - 'thumbups': [thumbup.thumbup_info for thumbup in photo_thumbups],  | 
            |
| 911 | 
                - }  | 
            |
| 860 | 
                +    return response(200, 'Thumbup Cancel Success', u'点赞取消成功', {
               | 
            |
| 861 | 
                + 'thumbup': False,  | 
            |
| 862 | 
                + 'thumbups': [thumbup.thumbup_info for thumbup in photo_thumbups],  | 
            |
| 912 | 863 | 
                })  | 
            
| 913 | 864 | 
                 | 
            
| 914 | 865 | 
                 | 
            
| 866 | 
                +@logit  | 
            |
| 915 | 867 | 
                def pai2_home_api(request):  | 
            
| 916 | 868 | 
                """  | 
            
| 917 | 869 | 
                首页信息  | 
            
                @@ -980,16 +932,13 @@ def pai2_home_api(request):  | 
            ||
| 980 | 932 | 
                     #     'porder': get_lensman_order_record(row['photo_id'], user_id) if row['photo_from'] == GroupPhotoInfo.SESSION_GROUP else {},
               | 
            
| 981 | 933 | 
                # }) for row in rows]  | 
            
| 982 | 934 | 
                 | 
            
| 983 | 
                -    return JsonResponse({
               | 
            |
| 984 | 
                - 'status': 200,  | 
            |
| 985 | 
                - 'message': u'获取首页列表成功',  | 
            |
| 986 | 
                -        'data': {
               | 
            |
| 987 | 
                - 'photos': rows,  | 
            |
| 988 | 
                - 'left': left,  | 
            |
| 989 | 
                - }  | 
            |
| 935 | 
                +    return response(200, 'Get Home Data Success', u'获取首页数据成功', {
               | 
            |
| 936 | 
                + 'photos': rows,  | 
            |
| 937 | 
                + 'left': left,  | 
            |
| 990 | 938 | 
                })  | 
            
| 991 | 939 | 
                 | 
            
| 992 | 940 | 
                 | 
            
| 941 | 
                +@logit  | 
            |
| 993 | 942 | 
                def lensman_photo_price(request):  | 
            
| 994 | 943 | 
                """  | 
            
| 995 | 944 | 
                摄影师照片价格获取  | 
            
                @@ -1018,15 +967,12 @@ def lensman_photo_price(request):  | 
            ||
| 1018 | 967 | 
                 | 
            
| 1019 | 968 | 
                r.set(lensman_photo_price_key, price)  | 
            
| 1020 | 969 | 
                 | 
            
| 1021 | 
                -    return JsonResponse({
               | 
            |
| 1022 | 
                - 'status': 200,  | 
            |
| 1023 | 
                - 'message': u'获取价格成功',  | 
            |
| 1024 | 
                -        'data': {
               | 
            |
| 1025 | 
                - 'price': price  | 
            |
| 1026 | 
                - }  | 
            |
| 970 | 
                +    return response(200, 'Get Price Success', u'获取价格成功', {
               | 
            |
| 971 | 
                + 'price': price  | 
            |
| 1027 | 972 | 
                })  | 
            
| 1028 | 973 | 
                 | 
            
| 1029 | 974 | 
                 | 
            
| 975 | 
                +@logit  | 
            |
| 1030 | 976 | 
                def lensman_photo_bought(request):  | 
            
| 1031 | 977 | 
                """  | 
            
| 1032 | 978 | 
                摄影师照片已购买  | 
            
                @@ -1036,20 +982,18 @@ def lensman_photo_bought(request):  | 
            ||
| 1036 | 982 | 
                     user_id = request.POST.get('user_id', '')
               | 
            
| 1037 | 983 | 
                     photo_id = request.POST.get('photo_id', '')
               | 
            
| 1038 | 984 | 
                 | 
            
| 1039 | 
                -    return JsonResponse({
               | 
            |
| 1040 | 
                - 'status': 200,  | 
            |
| 1041 | 
                - 'message': u'获取购买数据成功',  | 
            |
| 1042 | 
                -        'data': {
               | 
            |
| 1043 | 
                - 'porder': get_lensman_order_record(photo_id, user_id)  | 
            |
| 1044 | 
                - }  | 
            |
| 985 | 
                +    return response(200, 'Get Bought Data Success', u'获取购买数据成功', {
               | 
            |
| 986 | 
                + 'porder': get_lensman_order_record(photo_id, user_id)  | 
            |
| 1045 | 987 | 
                })  | 
            
| 1046 | 988 | 
                 | 
            
| 1047 | 989 | 
                 | 
            
| 990 | 
                +@logit  | 
            |
| 1048 | 991 | 
                def group_photo_detail(request, photo_id):  | 
            
| 1049 | 992 | 
                photo = GroupPhotoInfo.objects.get(pk=photo_id)  | 
            
| 1050 | 993 | 
                     return render(request, 'photo/photo_detail.html', {'photo_url': photo.photo_url, 'api_domain': settings.API_DOMAIN})
               | 
            
| 1051 | 994 | 
                 | 
            
| 1052 | 995 | 
                 | 
            
| 996 | 
                +@logit  | 
            |
| 1053 | 997 | 
                def group_detail(request, group_id):  | 
            
| 1054 | 998 | 
                     return render(request, 'page/{}_download.html'.format('ios' if request.iOS else 'adr'), {})
               | 
            
| 1055 | 999 | 
                 | 
            
                @@ -1,7 +1,7 @@  | 
            ||
| 1 | 1 | 
                # -*- coding: utf-8 -*-  | 
            
| 2 | 2 | 
                 | 
            
| 3 | 3 | 
                from django.conf import settings  | 
            
| 4 | 
                -from django.http import JsonResponse  | 
            |
| 4 | 
                +from logit import logit  | 
            |
| 5 | 5 | 
                 | 
            
| 6 | 6 | 
                from account.models import UserInfo  | 
            
| 7 | 7 | 
                from message.models import SystemMessageDeleteInfo, SystemMessageInfo, SystemMessageReadInfo, UserMessageInfo  | 
            
                @@ -12,6 +12,7 @@ from utils.redis.rmessage import (get_system_message_delete_info, get_system_mes  | 
            ||
| 12 | 12 | 
                set_system_message_delete_info, set_system_message_read_info)  | 
            
| 13 | 13 | 
                 | 
            
| 14 | 14 | 
                 | 
            
| 15 | 
                +@logit  | 
            |
| 15 | 16 | 
                def message_list_api(request):  | 
            
| 16 | 17 | 
                """  | 
            
| 17 | 18 | 
                消息列表  | 
            
                @@ -43,15 +44,12 @@ def message_list_api(request):  | 
            ||
| 43 | 44 | 
                message['msg_unread_num'] = type_unread_messages.count()  | 
            
| 44 | 45 | 
                final_messages.append(message)  | 
            
| 45 | 46 | 
                 | 
            
| 46 | 
                -    return JsonResponse({
               | 
            |
| 47 | 
                - 'status': 200,  | 
            |
| 48 | 
                - 'message': u'获取消息列表成功',  | 
            |
| 49 | 
                -        'data': {
               | 
            |
| 50 | 
                - 'messages': final_messages,  | 
            |
| 51 | 
                - },  | 
            |
| 47 | 
                +    return response(200, 'Get Message List Success', u'获取消息列表成功', {
               | 
            |
| 48 | 
                + 'messages': final_messages,  | 
            |
| 52 | 49 | 
                })  | 
            
| 53 | 50 | 
                 | 
            
| 54 | 51 | 
                 | 
            
| 52 | 
                +@logit  | 
            |
| 55 | 53 | 
                def message_type_list_api(request, msg_type):  | 
            
| 56 | 54 | 
                """  | 
            
| 57 | 55 | 
                分类消息列表  | 
            
                @@ -82,16 +80,13 @@ def message_type_list_api(request, msg_type):  | 
            ||
| 82 | 80 | 
                type_messages, left = pagination(type_messages, page, num)  | 
            
| 83 | 81 | 
                type_messages = [msg.msg_info(user_id) for msg in type_messages]  | 
            
| 84 | 82 | 
                 | 
            
| 85 | 
                -    return JsonResponse({
               | 
            |
| 86 | 
                - 'status': 200,  | 
            |
| 87 | 
                - 'message': u'获取消息列表成功',  | 
            |
| 88 | 
                -        'data': {
               | 
            |
| 89 | 
                - 'messages': type_messages,  | 
            |
| 90 | 
                - 'left': left,  | 
            |
| 91 | 
                - },  | 
            |
| 83 | 
                +    return response(200, 'Get Message List Success', u'获取消息列表成功', {
               | 
            |
| 84 | 
                + 'messages': type_messages,  | 
            |
| 85 | 
                + 'left': left,  | 
            |
| 92 | 86 | 
                })  | 
            
| 93 | 87 | 
                 | 
            
| 94 | 88 | 
                 | 
            
| 89 | 
                +@logit  | 
            |
| 95 | 90 | 
                def message_type_read_api(request, msg_type=None):  | 
            
| 96 | 91 | 
                """  | 
            
| 97 | 92 | 
                消息读取  | 
            
                @@ -124,12 +119,10 @@ def message_type_read_api(request, msg_type=None):  | 
            ||
| 124 | 119 | 
                if _all == 'true': # 用户消息(点赞/评论)全部读取  | 
            
| 125 | 120 | 
                UserMessageInfo.objects.filter(to_uid=user_id, msg_type=msg_type).update(read=True)  | 
            
| 126 | 121 | 
                 | 
            
| 127 | 
                -    return JsonResponse({
               | 
            |
| 128 | 
                - 'status': 200,  | 
            |
| 129 | 
                - 'message': u'已读消息成功',  | 
            |
| 130 | 
                - })  | 
            |
| 122 | 
                + return response(200, 'Read Message Success', u'已读消息成功')  | 
            |
| 131 | 123 | 
                 | 
            
| 132 | 124 | 
                 | 
            
| 125 | 
                +@logit  | 
            |
| 133 | 126 | 
                def message_type_delete_api(request, msg_type=None):  | 
            
| 134 | 127 | 
                """  | 
            
| 135 | 128 | 
                消息删除  | 
            
                @@ -163,7 +156,4 @@ def message_type_delete_api(request, msg_type=None):  | 
            ||
| 163 | 156 | 
                if _all == 'true': # 用户消息(点赞/评论)全部删除  | 
            
| 164 | 157 | 
                UserMessageInfo.objects.filter(to_uid=user_id, msg_type=msg_type).update(status=False)  | 
            
| 165 | 158 | 
                 | 
            
| 166 | 
                -    return JsonResponse({
               | 
            |
| 167 | 
                - 'status': 200,  | 
            |
| 168 | 
                - 'message': u'消息删除成功',  | 
            |
| 169 | 
                - })  | 
            |
| 159 | 
                + return response(200, 'Delete Message Success', u'消息删除成功')  | 
            
                @@ -1,8 +1,8 @@  | 
            ||
| 1 | 1 | 
                # -*- coding: utf-8 -*-  | 
            
| 2 | 2 | 
                 | 
            
| 3 | 3 | 
                from django.conf import settings  | 
            
| 4 | 
                -from django.http import JsonResponse  | 
            |
| 5 | 4 | 
                from django.shortcuts import redirect  | 
            
| 5 | 
                +from logit import logit  | 
            |
| 6 | 6 | 
                 | 
            
| 7 | 7 | 
                from account.models import UserInfo  | 
            
| 8 | 8 | 
                from operation.models import FeedbackInfo, SplashInfo  | 
            
                @@ -11,6 +11,7 @@ from utils.error.response_utils import response  | 
            ||
| 11 | 11 | 
                from utils.redis.rapp import get_latest_app  | 
            
| 12 | 12 | 
                 | 
            
| 13 | 13 | 
                 | 
            
| 14 | 
                +@logit  | 
            |
| 14 | 15 | 
                def upgrade_api(request):  | 
            
| 15 | 16 | 
                """  | 
            
| 16 | 17 | 
                APP 升级  | 
            
                @@ -32,15 +33,12 @@ def upgrade_api(request):  | 
            ||
| 32 | 33 | 
                             'latest_url': latest_app.get('latest_adr_url', ''),
               | 
            
| 33 | 34 | 
                }  | 
            
| 34 | 35 | 
                 | 
            
| 35 | 
                -    return JsonResponse({
               | 
            |
| 36 | 
                - 'status': 200,  | 
            |
| 37 | 
                - 'message': u'获取最新版信息成功',  | 
            |
| 38 | 
                -        'data': {
               | 
            |
| 39 | 
                - 'appinfo': appinfo,  | 
            |
| 40 | 
                - },  | 
            |
| 36 | 
                +    return response(200, 'Get Latest App Success', u'获取最新版信息成功', {
               | 
            |
| 37 | 
                + 'appinfo': appinfo,  | 
            |
| 41 | 38 | 
                })  | 
            
| 42 | 39 | 
                 | 
            
| 43 | 40 | 
                 | 
            
| 41 | 
                +@logit  | 
            |
| 44 | 42 | 
                def splash_api(request):  | 
            
| 45 | 43 | 
                """  | 
            
| 46 | 44 | 
                启动页面  | 
            
                @@ -50,15 +48,12 @@ def splash_api(request):  | 
            ||
| 50 | 48 | 
                splashes = SplashInfo.objects.all()  | 
            
| 51 | 49 | 
                splashes = [splash.data for splash in splashes]  | 
            
| 52 | 50 | 
                 | 
            
| 53 | 
                -    return JsonResponse({
               | 
            |
| 54 | 
                - 'status': 200,  | 
            |
| 55 | 
                - 'message': u'获取最新版信息成功',  | 
            |
| 56 | 
                -        'data': {
               | 
            |
| 57 | 
                - 'splashes': splashes,  | 
            |
| 58 | 
                - },  | 
            |
| 51 | 
                +    return response(200, 'Get Splash Success', u'获取最新版信息成功', {
               | 
            |
| 52 | 
                + 'splashes': splashes,  | 
            |
| 59 | 53 | 
                })  | 
            
| 60 | 54 | 
                 | 
            
| 61 | 55 | 
                 | 
            
| 56 | 
                +@logit  | 
            |
| 62 | 57 | 
                def feedback_api(request):  | 
            
| 63 | 58 | 
                """  | 
            
| 64 | 59 | 
                用户反馈  | 
            
                @@ -76,12 +71,7 @@ def feedback_api(request):  | 
            ||
| 76 | 71 | 
                feedback=feedback  | 
            
| 77 | 72 | 
                )  | 
            
| 78 | 73 | 
                 | 
            
| 79 | 
                -    return JsonResponse({
               | 
            |
| 80 | 
                - 'status': 200,  | 
            |
| 81 | 
                - 'message': u'反馈成功',  | 
            |
| 82 | 
                -        'data': {
               | 
            |
| 83 | 
                - },  | 
            |
| 84 | 
                - })  | 
            |
| 74 | 
                + return response(200, 'Feedback Success', u'反馈成功')  | 
            |
| 85 | 75 | 
                 | 
            
| 86 | 76 | 
                 | 
            
| 87 | 77 | 
                def download_api(request):  | 
            
                @@ -3,7 +3,6 @@  | 
            ||
| 3 | 3 | 
                import xmltodict  | 
            
| 4 | 4 | 
                from django.conf import settings  | 
            
| 5 | 5 | 
                from django.db import transaction  | 
            
| 6 | 
                -from django.http import JsonResponse  | 
            |
| 7 | 6 | 
                from django.shortcuts import HttpResponse  | 
            
| 8 | 7 | 
                from logit import logit  | 
            
| 9 | 8 | 
                from TimeConvert import TimeConvert as tc  | 
            
                @@ -94,15 +93,10 @@ def wx_order_create_api(request):  | 
            ||
| 94 | 93 | 
                elif trade_type == 'APP':  | 
            
| 95 | 94 | 
                wxpay_params = wxpay.order.get_appapi_params(prepay_id)  | 
            
| 96 | 95 | 
                 | 
            
| 97 | 
                -    return JsonResponse({
               | 
            |
| 98 | 
                - 'status': 200,  | 
            |
| 99 | 
                - 'message': 'Order Create Success',  | 
            |
| 100 | 
                - 'description': u'订单创建成功',  | 
            |
| 101 | 
                -        'data': {
               | 
            |
| 102 | 
                - 'order_id': order.order_id,  | 
            |
| 103 | 
                - 'prepay_id': prepay_id,  | 
            |
| 104 | 
                - 'wxpay_params': wxpay_params,  | 
            |
| 105 | 
                - }  | 
            |
| 96 | 
                +    return response(200, 'Order Create Success', u'订单创建成功', {
               | 
            |
| 97 | 
                + 'order_id': order.order_id,  | 
            |
| 98 | 
                + 'prepay_id': prepay_id,  | 
            |
| 99 | 
                + 'wxpay_params': wxpay_params,  | 
            |
| 106 | 100 | 
                })  | 
            
| 107 | 101 | 
                 | 
            
| 108 | 102 | 
                 | 
            
                @@ -191,14 +185,7 @@ def wx_order_query_api(request):  | 
            ||
| 191 | 185 | 
                return response(OrderStatusCode.WX_ORDER_NOT_FOUND)  | 
            
| 192 | 186 | 
                 | 
            
| 193 | 187 | 
                if order.pay_status == OrderInfo.PAID:  | 
            
| 194 | 
                -        return JsonResponse({
               | 
            |
| 195 | 
                - 'status': 200,  | 
            |
| 196 | 
                - 'message': 'Order Pay Success',  | 
            |
| 197 | 
                - 'description': u'订单支付成功',  | 
            |
| 198 | 
                -            'data': {
               | 
            |
| 199 | 
                -  | 
            |
| 200 | 
                - }  | 
            |
| 201 | 
                - })  | 
            |
| 188 | 
                + return response(200, 'Order Pay Success', u'订单支付成功')  | 
            |
| 202 | 189 | 
                elif order.pay_status == OrderInfo.FAIL:  | 
            
| 203 | 190 | 
                return response(OrderStatusCode.WX_ORDER_PAY_FAIL)  | 
            
| 204 | 191 | 
                 | 
            
                @@ -218,14 +205,7 @@ def wx_order_query_api(request):  | 
            ||
| 218 | 205 | 
                # 订单状态判断更新  | 
            
| 219 | 206 | 
                if trade_state == 'SUCCESS': # 订单支付成功  | 
            
| 220 | 207 | 
                order_paid_success(order)  | 
            
| 221 | 
                -        return JsonResponse({
               | 
            |
| 222 | 
                - 'status': 200,  | 
            |
| 223 | 
                - 'message': 'Order Pay Success',  | 
            |
| 224 | 
                - 'description': u'订单支付成功',  | 
            |
| 225 | 
                -            'data': {
               | 
            |
| 226 | 
                -  | 
            |
| 227 | 
                - }  | 
            |
| 228 | 
                - })  | 
            |
| 208 | 
                + return response(200, 'Order Pay Success', u'订单支付成功')  | 
            |
| 229 | 209 | 
                elif trade_state == 'NOTPAY': # 订单未支付  | 
            
| 230 | 210 | 
                return response(OrderStatusCode.WX_ORDER_NOT_PAY)  | 
            
| 231 | 211 | 
                elif trade_state == 'USERPAYING': # 订单支付中  | 
            
                @@ -251,13 +231,9 @@ def wx_order_list_api(request):  | 
            ||
| 251 | 231 | 
                orders, left = pagination(orders, page, num)  | 
            
| 252 | 232 | 
                orders = [order.data(user_id) for order in orders]  | 
            
| 253 | 233 | 
                 | 
            
| 254 | 
                -    return JsonResponse({
               | 
            |
| 255 | 
                - 'status': 200,  | 
            |
| 256 | 
                - 'message': u'获取订单列表成功',  | 
            |
| 257 | 
                -        'data': {
               | 
            |
| 258 | 
                - 'orders': orders,  | 
            |
| 259 | 
                - 'left': left,  | 
            |
| 260 | 
                - },  | 
            |
| 234 | 
                +    return response(200, 'Get Order List Success', u'获取订单列表成功', {
               | 
            |
| 235 | 
                + 'orders': orders,  | 
            |
| 236 | 
                + 'left': left,  | 
            |
| 261 | 237 | 
                })  | 
            
| 262 | 238 | 
                 | 
            
| 263 | 239 | 
                 | 
            
                @@ -280,13 +256,7 @@ def wx_order_detail_api(request):  | 
            ||
| 280 | 256 | 
                if user_id not in [order.from_uid, order.to_lid, order.to_uid]:  | 
            
| 281 | 257 | 
                return response(OrderStatusCode.NO_DETAIL_PERMISSION)  | 
            
| 282 | 258 | 
                 | 
            
| 283 | 
                -    return JsonResponse({
               | 
            |
| 284 | 
                - 'status': 200,  | 
            |
| 285 | 
                - 'message': u'获取订单详情成功',  | 
            |
| 286 | 
                -        'data': {
               | 
            |
| 287 | 
                - 'order': order.data(user_id),  | 
            |
| 288 | 
                - },  | 
            |
| 289 | 
                - })  | 
            |
| 259 | 
                + return response(200, 'Get Order Detail Success', u'获取订单详情成功')  | 
            |
| 290 | 260 | 
                 | 
            
| 291 | 261 | 
                 | 
            
| 292 | 262 | 
                @logit  | 
            
                @@ -7,8 +7,8 @@ from curtail_uuid import CurtailUUID  | 
            ||
| 7 | 7 | 
                from django.conf import settings  | 
            
| 8 | 8 | 
                from django.core.files.storage import default_storage  | 
            
| 9 | 9 | 
                from django.db import transaction  | 
            
| 10 | 
                -from django.http import JsonResponse  | 
            |
| 11 | 10 | 
                from django.shortcuts import render  | 
            
| 11 | 
                +from logit import logit  | 
            |
| 12 | 12 | 
                from rest_framework import viewsets  | 
            
| 13 | 13 | 
                from TimeConvert import TimeConvert as tc  | 
            
| 14 | 14 | 
                 | 
            
                @@ -16,7 +16,7 @@ from account.models import LensmanInfo, UserInfo  | 
            ||
| 16 | 16 | 
                from group.models import GroupInfo, GroupPhotoInfo, GroupUserInfo  | 
            
| 17 | 17 | 
                from photo.models import PhotosInfo, UUIDInfo  | 
            
| 18 | 18 | 
                from photo.serializers import PhotosInfoSerializer  | 
            
| 19 | 
                -from utils.error.errno_utils import PhotoStatusCode  | 
            |
| 19 | 
                +from utils.error.errno_utils import LensmanStatusCode, PhotoStatusCode  | 
            |
| 20 | 20 | 
                from utils.error.response_utils import response  | 
            
| 21 | 21 | 
                from utils.ip_utils import ip_addr  | 
            
| 22 | 22 | 
                from utils.redis.rgroup import get_group_info, get_group_users_info, set_group_info, set_group_users_info  | 
            
                @@ -28,6 +28,7 @@ from utils.watermark_utils import watermark_wrap  | 
            ||
| 28 | 28 | 
                r = settings.REDIS_CACHE  | 
            
| 29 | 29 | 
                 | 
            
| 30 | 30 | 
                 | 
            
| 31 | 
                +@logit  | 
            |
| 31 | 32 | 
                def uuid_init(request):  | 
            
| 32 | 33 | 
                """  | 
            
| 33 | 34 | 
                生成唯一标识  | 
            
                @@ -39,14 +40,11 @@ def uuid_init(request):  | 
            ||
| 39 | 40 | 
                for i in xrange(num):  | 
            
| 40 | 41 | 
                UUIDInfo.objects.create(uuid=CurtailUUID.uuid(UUIDInfo))  | 
            
| 41 | 42 | 
                 | 
            
| 42 | 
                -    return JsonResponse({
               | 
            |
| 43 | 
                - 'status': 200,  | 
            |
| 44 | 
                - 'message': u'UUID 更新成功',  | 
            |
| 45 | 
                - 'data': '',  | 
            |
| 46 | 
                - })  | 
            |
| 43 | 
                + return response(200, 'UUID Refresh Success', u'UUID 更新成功')  | 
            |
| 47 | 44 | 
                 | 
            
| 48 | 45 | 
                 | 
            
| 49 | 46 | 
                # curl -X POST -F user_id=xxxxxxx -F num=100 http://api.pai.ai/uuid  | 
            
| 47 | 
                +@logit  | 
            |
| 50 | 48 | 
                @transaction.atomic  | 
            
| 51 | 49 | 
                def uuid(request):  | 
            
| 52 | 50 | 
                """  | 
            
                @@ -63,11 +61,7 @@ def uuid(request):  | 
            ||
| 63 | 61 | 
                uuid.status = False  | 
            
| 64 | 62 | 
                uuid.save()  | 
            
| 65 | 63 | 
                 | 
            
| 66 | 
                -    return JsonResponse({
               | 
            |
| 67 | 
                - 'status': 200,  | 
            |
| 68 | 
                - 'message': u'获取唯一标识成功',  | 
            |
| 69 | 
                - 'data': [uuid.uuid for uuid in uuids],  | 
            |
| 70 | 
                - })  | 
            |
| 64 | 
                + return response(200, 'Get UUID Success', u'获取唯一标识成功', [uuid.uuid for uuid in uuids])  | 
            |
| 71 | 65 | 
                 | 
            
| 72 | 66 | 
                 | 
            
| 73 | 67 | 
                # [How to do a PUT request with curl?](http://stackoverflow.com/questions/13782198/how-to-do-a-put-request-with-curl)  | 
            
                @@ -82,6 +76,7 @@ def uuid(request):  | 
            ||
| 82 | 76 | 
                # while the < makes a text field and just get the contents for that text field from a file.  | 
            
| 83 | 77 | 
                #  | 
            
| 84 | 78 | 
                # curl -X POST -F user_id=xxxxxxx -F session_id=xxxxxxx -F photo_id=xxxxxxx -F photo=@xxxxxxx.jpg http://api.pai.ai/photos/upload  | 
            
| 79 | 
                +@logit  | 
            |
| 85 | 80 | 
                def upload_photo(request):  | 
            
| 86 | 81 | 
                """  | 
            
| 87 | 82 | 
                上传图片  | 
            
                @@ -100,10 +95,7 @@ def upload_photo(request):  | 
            ||
| 100 | 95 | 
                try:  | 
            
| 101 | 96 | 
                LensmanInfo.objects.get(lensman_id=lensman_id)  | 
            
| 102 | 97 | 
                except LensmanInfo.DoesNotExist:  | 
            
| 103 | 
                -        return JsonResponse({
               | 
            |
| 104 | 
                - 'status': 4000,  | 
            |
| 105 | 
                - 'message': u'摄影师不存在',  | 
            |
| 106 | 
                - })  | 
            |
| 98 | 
                + return response(LensmanStatusCode.LENSMAN_NOT_FOUND)  | 
            |
| 107 | 99 | 
                 | 
            
| 108 | 100 | 
                # photo_id = curtailUUID(PhotosInfo, 'photo_id')  | 
            
| 109 | 101 | 
                 | 
            
                @@ -131,13 +123,10 @@ def upload_photo(request):  | 
            ||
| 131 | 123 | 
                m_photo_path=m_photo_path,  | 
            
| 132 | 124 | 
                )  | 
            
| 133 | 125 | 
                 | 
            
| 134 | 
                -    return JsonResponse({
               | 
            |
| 135 | 
                - 'status': 200,  | 
            |
| 136 | 
                - 'message': u'照片上传成功',  | 
            |
| 137 | 
                - 'data': photo.data,  | 
            |
| 138 | 
                - })  | 
            |
| 126 | 
                + return response(200, 'Photo Upload Success', u'照片上传成功', photo.data)  | 
            |
| 139 | 127 | 
                 | 
            
| 140 | 128 | 
                 | 
            
| 129 | 
                +@logit  | 
            |
| 141 | 130 | 
                def session_join_api(request):  | 
            
| 142 | 131 | 
                """  | 
            
| 143 | 132 | 
                Session 详情  | 
            
                @@ -247,51 +236,49 @@ def session_join_api(request):  | 
            ||
| 247 | 236 | 
                )  | 
            
| 248 | 237 | 
                latest_photo = group_photos.first()  | 
            
| 249 | 238 | 
                 | 
            
| 250 | 
                -    return JsonResponse({
               | 
            |
| 251 | 
                - 'status': 200,  | 
            |
| 252 | 
                - 'message': u'申请成功',  | 
            |
| 253 | 
                -        'data': {
               | 
            |
| 254 | 
                - 'current_id': latest_photo and latest_photo.pk or current_id,  | 
            |
| 255 | 
                - 'photos': [photo.photo_info(user_id) for photo in group_photos],  | 
            |
| 256 | 
                - 'group_id': group_id,  | 
            |
| 257 | 
                - 'group': group_info,  | 
            |
| 258 | 
                - 'user_id': user_id,  | 
            |
| 259 | 
                - 'users': group_users,  | 
            |
| 260 | 
                - }  | 
            |
| 239 | 
                +    return response(200, 'Apply Success', u'申请成功', {
               | 
            |
| 240 | 
                + 'current_id': latest_photo and latest_photo.pk or current_id,  | 
            |
| 241 | 
                + 'photos': [photo.photo_info(user_id) for photo in group_photos],  | 
            |
| 242 | 
                + 'group_id': group_id,  | 
            |
| 243 | 
                + 'group': group_info,  | 
            |
| 244 | 
                + 'user_id': user_id,  | 
            |
| 245 | 
                + 'users': group_users,  | 
            |
| 261 | 246 | 
                })  | 
            
| 262 | 247 | 
                 | 
            
| 263 | 248 | 
                 | 
            
| 249 | 
                +@logit  | 
            |
| 264 | 250 | 
                def session_detail(request, session_id):  | 
            
| 265 | 251 | 
                photos = PhotosInfo.objects.filter(session_id=session_id)  | 
            
| 266 | 252 | 
                     return render(request, 'photo/session_detail.html', {'photos': photos})
               | 
            
| 267 | 253 | 
                 | 
            
| 268 | 254 | 
                 | 
            
| 255 | 
                +@logit  | 
            |
| 269 | 256 | 
                def photo_standard(request, photo_id):  | 
            
| 270 | 257 | 
                photo = PhotosInfo.objects.get(photo_id=photo_id)  | 
            
| 271 | 258 | 
                     return render(request, 'photo/photo_detail.html', {'photo_url': photo.p_photo_url})
               | 
            
| 272 | 259 | 
                 | 
            
| 273 | 260 | 
                 | 
            
| 261 | 
                +@logit  | 
            |
| 274 | 262 | 
                def photo_standard_api(request, photo_id):  | 
            
| 275 | 263 | 
                photo = PhotosInfo.objects.get(photo_id=photo_id)  | 
            
| 276 | 
                -    return JsonResponse({
               | 
            |
| 277 | 
                - 'status': 200,  | 
            |
| 278 | 
                - 'message': u'获取照片详情成功',  | 
            |
| 279 | 
                -        'data': {
               | 
            |
| 280 | 
                - 'photo': photo.detail,  | 
            |
| 281 | 
                - }  | 
            |
| 264 | 
                +    return response(200, 'Get Photo Detail Success', u'获取照片详情成功', {
               | 
            |
| 265 | 
                + 'photo': photo.detail,  | 
            |
| 282 | 266 | 
                })  | 
            
| 283 | 267 | 
                 | 
            
| 284 | 268 | 
                 | 
            
| 269 | 
                +@logit  | 
            |
| 285 | 270 | 
                def photo_medium(request, photo_id):  | 
            
| 286 | 271 | 
                photo = PhotosInfo.objects.get(photo_id=photo_id)  | 
            
| 287 | 272 | 
                     return render(request, 'photo/photo_detail.html', {'photo_url': photo.m_photo_url})
               | 
            
| 288 | 273 | 
                 | 
            
| 289 | 274 | 
                 | 
            
| 275 | 
                +@logit  | 
            |
| 290 | 276 | 
                def photo_large(request, photo_id):  | 
            
| 291 | 277 | 
                photo = PhotosInfo.objects.get(photo_id=photo_id)  | 
            
| 292 | 278 | 
                     return render(request, 'photo/photo_detail.html', {'photo_url': photo.l_photo_url})
               | 
            
| 293 | 279 | 
                 | 
            
| 294 | 280 | 
                 | 
            
| 281 | 
                +@logit  | 
            |
| 295 | 282 | 
                def photo_raw(request, photo_id):  | 
            
| 296 | 283 | 
                photo = PhotosInfo.objects.get(photo_id=photo_id)  | 
            
| 297 | 284 | 
                     return render(request, 'photo/photo_detail.html', {'photo_url': photo.r_photo_url})
               |